/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.isil.sco.proyecto.dao;

import java.sql.*;
import java.util.*;
import javax.naming.NamingException;
import javax.sql.DataSource;
import pe.isil.sco.proyecto.util.Conexion;

/**
 *
 * @author dgparedes
 */
public class CartDAO {

    Connection conn = null;

    public CartDAO() {
    }

  /*  public int grabarCarrito(Map carritoCompra, String tarjetaCredito, String nombre, String apellido) {
        int idVenta = 0;
        try {
            Conexion conexion = Conexion.getInstance();
            DataSource ds = conexion.getDataSource();
            conn = ds.getConnection();


            // Grabar la cabecera
            String queryCabecera = "insert into venta(nombre,apellido,numberCard,fecha)"
                    + "values(?,?,?,sysdate())";
            PreparedStatement pstm = conn.prepareStatement(queryCabecera);
            pstm.setString(1, nombre);
            pstm.setString(2, apellido);
            pstm.setString(3, tarjetaCredito);
            pstm.executeUpdate();

            // Obtener el id de venta
            String queryId = "select max(idVenta) as id from venta";
            pstm = conn.prepareStatement(queryId);
            ResultSet rs = pstm.executeQuery();
            rs.next();
            idVenta = rs.getInt("id");
            double total = 0;

            Iterator it = carritoCompra.entrySet().iterator();

            while (it.hasNext()) {
                Map.Entry e = (Map.Entry) it.next();
                String isbn = e.getKey().toString();
                CartItemBean objCartItem = (CartItemBean) e.getValue();
                Integer cantidad = objCartItem.getQuantity();
                Double precioLibro = objCartItem.getBook().getPrice();
                Double monto = cantidad * precioLibro;
                total += monto;
                Statement st = conn.createStatement();
                st.executeUpdate("INSERT INTO ventaItem (idVenta,isbn,cantidad,monto) VALUES(" + idVenta + ",'" + isbn + "'," + cantidad + "," + monto + ")");

            }

            //Grabamos total de la venta
            String queryTotal = "update venta set total = ? where idVenta = ?";
            pstm = conn.prepareStatement(queryTotal);
            pstm.setDouble(1, total);
            pstm.setInt(2, idVenta);
            pstm.executeUpdate();

            return idVenta;

        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (NamingException ex) {
            ex.printStackTrace();
        }
        return idVenta;
    }

    public ArrayList<DetalleVenta> consultaDetalleVenta(Integer idVenta) {
        ArrayList<DetalleVenta> listDetalleVenta = null;
        try {
            Conexion conexion = Conexion.getInstance();
            DataSource ds = conexion.getDataSource("jdbc/bookStore2");
            conn = ds.getConnection();
            String query = "SELECT * FROM ventaitem WHERE idVenta = " + idVenta;
            //PreparedStatement pstm = conn.prepareStatement(query);
            //pstm.setInt(1, idVenta);
            Statement stm = conn.createStatement();
            ResultSet rs = stm.executeQuery(query);
            //           ResultSet rs = pstm.executeQuery(query);
            listDetalleVenta = new ArrayList<DetalleVenta>();

            while (rs.next()) {
                DetalleVenta dv = new DetalleVenta();
                dv.setIdItem(rs.getInt("idItem"));
                dv.setIdVenta(rs.getInt("idVenta"));
                dv.setIsbn(rs.getString("isbn"));
                dv.setCantidad(rs.getInt("cantidad"));
                dv.setMonto(rs.getDouble("monto"));

                listDetalleVenta.add(dv);
            }
            stm.close();
            conn.close();
            return listDetalleVenta;
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return listDetalleVenta;
    }

    public int eliminarItem(Integer idItem) {
        int ind = 0;

        try {
            Conexion conexion = Conexion.getInstance();
            DataSource ds = conexion.getDataSource("jdbc/bookStore2");
            conn = ds.getConnection();

            String query = "delete from ventaitem where idItem = ?";
            PreparedStatement pstm = conn.prepareStatement(query);
            pstm.setInt(1, idItem);
            ind = pstm.executeUpdate();
        } catch (Exception e) {
            ind = 0;
        }
        return ind;
    }*/
}
